package com.ansion.commonchat.startup.workmanager.bwork;

import androidx.annotation.NonNull;

import java.util.Collections;
import java.util.List;

/**
 * Created by wanghongjie on 2023/5/11
 * Describe :  用于构建和管理一系列相关的工作请求，以定义它们的执行顺序和依赖关系。
 * <p>
 * 通过 WorkContinuation，可以创建工作链，使工作按照特定的顺序执行，并可以设置依赖关系以确保工作的顺序执行。
 */
public abstract class BWorkContinuation {

    public final @NonNull
    BWorkContinuation then(@NonNull BOneTimeWorkRequest work) {
        return then(Collections.singletonList(work));
    }

    public abstract @NonNull
    BWorkContinuation then(@NonNull List<BOneTimeWorkRequest> work);

    public abstract @NonNull
    BOperation enqueue();

}